package com.cmw.designpattern.creational.simplefactory;

import java.util.Calendar;

/**
 * @ClassName SimpleFactoryTest
 * @Description: 简单工厂测试
 *              JDK 里的  Calendar.getInstance() 就是通过第一种简单工厂方式创建对象
 * @Author cheng
 * @Date 2020/10/10
 * @Version V1.0
 **/
public class SimpleFactoryTest {
    public static void main(String[] args) {
        /**------- 简单工厂实现一：通过类型创建对象 -------**/
        System.out.println("简单工厂实现一：通过类型标识创建对象");
        Video video = VideoFactory.getVideo(Video.VideoType.JAVA);
        video.produce();
        System.out.println("-------------------------------");

        /**------- 简单工厂实现二：通过反射创建对象 -------**/
        System.out.println("简单工厂实现二：通过反射创建对象");
        Video video2 = VideoFactory.getVideo(JavaScriptVideo.class);
        video2.produce();
        System.out.println("-------------------------------");

        System.out.println("JDK 里的  Calendar.getInstance() 就是通过第一种简单工厂方式创建对象");
    }
}
